You can have a look at how sqlite achieves atomic commits using a rollback or a write ahead journal:
that was about the only thing i found from googling this
it helped refresh my memory about how such things work. I was into systems programming before I got into game programming, but that was a LONG time ago, back in the DOS 3.0 and DOS 4.0 days.
from the wikipedia description, recovery seemed rather non-trivial, especially compared to round robin saves or new save each time.
going to SQLite to save what is essentially a header-less 264x264 monochrome bitmap is probably overkill. also, these must page in real time, so performance is "mission critical code". in my mind, "mission critical code" and SQLanything don't belong in the same universe.
All "SQLanything" aren't created equal - I suggested using SQLite, not Oracle. It's server-less and writes everything into a single binary file. You could easily store your bitmaps in there as blobs and get the atomic updates, resilience to crashes etc for free. If you use it like just as a key/value store for binary blobs you don't even need it to parse any sql (not that it would matter because parsing a few sql statements when initializing your app wouldn't kill you anyway)
As an aside, SQLite and "mission critical" do belong in the same universe, unless you don't consider airliners flight software to be mission critical: