Не знаю, насколько это хорошая практика. Просто вот сходу придумал "дешевый" вариант реализации.
В Oracle есть SCN , что-то вроде внутренних часов этой СУБД, каждое изменение в БД ознаменуется инкрементацией этого "времени".
По такому же принципу можно трекать изменения, т.е. сделать счетчик (например в одной таблице одну строку с одной колонкой, которая хранит целую переменную) изменений БД. Ну и соответственно в вашей программе вы запоминаете последнее значение, а потом делаете банальный селект этого счетчика из БД.