The sqldiff utility, in its latest form (on the trunk branch as of https://sqlite.org/src/info/68d2373f5d578cf3 ), has a new option, --visible-controls. When invoked with that option, sqldiff will render text fields being updated or inserted in a form that should not suffer the ambiguity of non-graphical characters being treated in special ways that has (probably) led to or contributed to your problem. I still recommend newline normalization for your situation. You can use sqldiff --visible-controls to conveniently show how your putatively identical databases are not quite identical. I believe you will see line-endings rendering differently between outputs from<code> sqldiff --visible-controls test-copy.db test.db and sqldiff --visible-controls test.db test-copy.db </code>. (Spacified paths revised and dequoted for clarity.)