Spreadsheet or FileMaker
For a mere 10 megs of data in a single table (list), consider using a spreadsheet or FileMaker rather than building your own app.
Database versus File
If your data is churning (being edited, deleted, sorted, and such), then generally best to use a database. A good database helps with the integrity of your data, such as avoiding accidental overwrites from your own sloppy programming or preventing corruption due to crashing while in the middle of writing data. Protecting the integrity of your data (see ACID) is one big reason to use a database over writing your own data file such as CSV.
However, if your data is not churning, so you rarely write to it, then writing a CSV may make sense, especially if sharing this data is a primary goal. In such a case, use a library to help with the CSV or Tab-Delimited file such as Apache CSV. Always write to a fresh file before deleting the old file, to avoid losing data.
Any database will store persistent data, to be available the next time your run your app. Some databases also offer an "In-Memory" option, where the database lives only in memory, is not persistent, and disappears when the database engine is shutdown. But that is never the default, so you would have to go out of your way to lose your data that way.
H2 + Vaadin + Java
You do not give any requirements or constraints, so there is no way to make a specific recommendation. My own choice would be:
- H2 database engine built in pure Java. Can be either embedded in your app or used separately as a database server.
- Vaadin framework and its Vaadin Grid widget to write an web app in pure Java that is automatically rendered in a web-standards HTML5 web browser.
List of embedded databases
See this Wikipedia page for a comparison of a couple dozen embedded database engines.