This is my first time hearing about H2, what's the benefit of H2 over sqlite?
The main use I've put it to over the years is as an in-memory database for integration tests.
For a long time, it was possible/practical to use SQLite from Java. Now, it is, but not if you want to keep things as pure Java (and another commenter mentioned). But really, in my mind, that’s the only real benefit for H2, the fact that’s it’s pure Java. So if you need that, you’re good.
But otherwise, I try to stick to SQLite.