As I have found some of the things I am looking to do with the system versioning coming with Hsqldb 2.5.x, I allow myself to post this answer.
To retrieve the previous version of a row, which is the last version before the current version, or more simply to find all the UPDATE made for 1 year, simply execute the query:
SELECT previous.* FROM customer AS current, customer FOR SYSTEM_TIME
FROM CURRENT_TIMESTAMP - 1 YEAR TO CURRENT_TIMESTAMP AS previous
WHERE current.customerid = ? AND previous.customerid = ? AND
current.start = previous.stop;
Assuming that:
start: is the column declared as TIMESTAMP GENERATED ALWAYS AS ROW START.
stop: is the column declared as TIMESTAMP GENERATED ALWAYS AS ROW END.
customerid: is the primary key to the customer table, because I have to find the UPDATE for each customer.
I now have to find the INSERT and DELETE queries, I would come back for that.
PS: I didn't invent anything, it comes from BD2 documentation, so it may not be optimal, but it works with Hsqldb system versioning.
Edit: This answer is not satisfactory, see here for something much better