В большинстве СУБД есть журнал транзакций. Кроме MS SQL, в PostgreSQL он используется для восстановления состояния с момента бекапа до момента сбоя. В Oracle сможете посмотреть что было, когда было и сможете обращаться к таблицам из прошлого обычным SQL. Но этот механизм имеет ограниченное время просмотра.
Поэтому лучше подобное решать не средствами СУБД.