I don't think there's a good off-the-shelf solution at the database level. The way would approach this is roughly this:
- The database schema includes versioning information; this can be as simple as created/modified timestamps on each row, or you can fully historize everything, depending on your practical needs. The key here is that you need to be able to check what the changes were after a given date/time.
- The server exposes data through a web service; since all you need here is basic CRUD, a RESTful API would be appropriate. The API should expose a way of querying for changes, e.g.
http://example.com/api/modifications/things?refdate=20130601
would give you all the modifications to the things
table since 06/01/2013.
- The client app would use API calls to download recent changes from the server, and push local changes back up. It would run its own sqlite database locally, but you'd never exchange the database files directly.
So instead of pushing the entire database back and forth, you selectively push and pull just the changes, with the API acting as the interface.