One brilliant way is, as I have done when wanting to test an application I've written, get a hex editor and simply alter what's stored on the disk. Great fun if you want to deliberately damage a table.
Badly written software can do it and in part it depends on how the database engine responds to say 25 characters being written to a field that is only big enough for 10, or it can write a character to a field that the engine can't handle. If running over a network a junk character can be introduced by a glitch on the network. Software writing directly to disk when it should go through the engine and overwriting some valid data. Poor transaction handling so that two lots of data are being written simultaneously and some gets in the wrong place on disk. Memory corruption which is subsequently written to disk.
Over the years I've had pretty much all of them.
What might be going on here I don't know. SQLite isn't one I'm overly familiar with (I can use SQL on it but that's because I now SQL) and I'm not familiar with the LE code base (translation I've never even looked at it).
Can one of the developers enlighten me on how the copying from MyVideos120.db to MyVideos121.db is done. If as I'm guessing its read a record, write a record then the table metadata is probably getting screwed, if its a straight copy I'm baffled.