Interesting, so I think this is: 1. we start with old.db in read only mode 2. we make some changes, saving to new.db 3. sqldiff.db old.db new.db ==> calculates a patch So the only difference from the original question is that instead of "explicitly storing the WAL", we store new.db and then compute the diff later. Thanks!