TL;DR: we are looking for a pattern of implementing "versioned" objects in Realm, so the "last" version is accessible fast (just by primary key), and creating a "historical" version from "last" version before updating is easy, as well as accessing all old versions of the object.
Some background.
We are implementing Realm as a replacement for SQLite in Android app and also "from scratch" in iOS app. We have a unified backend for both apps and want to keep the Realm object representation as close as possible between platforms.
In SQLite, we have 2 tables with basically the same structure, one having the last version of each object, and the second - all previous versions. Before updating the "main" table, we copy the row-to-be-updated to the "history" table and then do the update.