Why is my embedded h2 program writing to a .mv.db file
This is now automatically enabled since version 1.4.177 Beta (2014-04-12).
You can disable it by adding ;MV_STORE=FALSE
and ;MVCC=FALSE
to the database URL
By default, the MV_STORE option is enabled, so it is using the new MVStore storage. The MVCC setting is by default set to the same values as the MV_STORE setting, so it is also enabled by default. For testing, both settings can be disabled by appending ";MV_STORE=FALSE" and/or ";MVCC=FALSE" to the database URL.
You should tell us, what exact version of H2 you use.
.mv.db-files are for the upcoming/beta storage type "MVStore" for H2.
Here is from the http://www.h2database.com/html/changelog.html:
New table engine "org.h2.mvstore.db.MVTableEngine" that internally uses the MVStore to persist data. To try it out, append ";DEFAULT_TABLE_ENGINE=org.h2.mvstore.db.MVTableEngine" to the database URL. This is still very experimental, and many features are not supported yet. The data is stored in a file with the suffix .mv.db.