По умолчанию при регистрации данных для версионного редактирования для класса объектов или таблицы создается представление *_evw. Данные в этом представлении можно просмотреть и в версии DEFAULT, и в любой другой версии БГД, но эта процедура документирована только для интерфейса SQL (для MS SQL, для PostgreSQL, для Oracle), но не для самого Desktop, в рамках которого тоже желательно использовать такие представления. PostgreSQL позволяет использовать определение версии в рамках выражения SELECT (об этом чуть ниже). Остальные СУБД лишены такой возможности. Но, как выяснилось, можно найти решение для других БД, хотя и менее удобное для работы с большим количеством версий.

Итак, в случае MS SQL имеем:
Смотрим на код _evw и видим в нем скалярную функцию
SDE_get_view_state()
ищем и находим эту скалярную функцию.
И в ее тексте видим:
SELECT @state_id = state_id FROM data_sample1_ver.dbo.SDE_versions
WHERE name = ‘DEFAULT’ AND owner = ‘dbo’

Делаем копию этой скалярной функции с именем SDE_get_view_state_v1()
c измененным кодом
SELECT @state_id = state_id FROM data_sample1_ver.dbo.SDE_versions
WHERE name = ‘v1’ AND owner = ‘editor1’
То есть, прописываем в явном виде в функцию нужную нам версию.
Делаем копию *_evw с новым именем _evw_v1 и изменяем в тексте
SDE_get_view_state()
на
SDE_get_view_state_v1()

Получаем новый view, который отображает данные из версии editor1.v1

Поскольку мы использовали стандартные функции, то данное решение будет работать устойчиво.

Неудобства:
1. при обновлении БГД придется контролировать и функцию, и view
2. для каждой версии нужно создавать отдельную функцию и view

А для тех, кто использует PostgreSQL, задача решается несколько проще. В этом случае запрос для построения представления или запрос в Query Layer должен выглядеть примерно так:
SELECT
(select sde_set_current_version(‘editor1.v1’) AS ver1),
water_object_evw.objectid,
water_object_evw.name,
water_object_evw.sde_state_id,
water_object_evw.shape
FROM test1.water_object_evw

Но… эта функциональность работает с довольно серьезными неудобствами. Вам придется создать представление в БД с приведенным выше текстом, потом обязательно перетащить это представление в карту в ArcMap. Созданное таким образом представление обязательно должно содержать поле SHAPE. Только после этого начинают нормально работать запросы через Query Layer и отрабатывать запросы без поля SHAPE. В случае PostgreSQL код представления * _evw значительно отличается от кода представления в MS SQL и решение, приведенное в начале статьи, не работает.