For me, the dividing line is do you need all the data at once or do you need to work with a smaller subset of information at a time?
JSON from a flat file read’s the whole kit-and-kabootle and loads it in to memory. With an SQL database, you can store many records and find the few that you need to work with at a given time.
SQLite, like any database system has overhead to use. It’s harder but worth it when you need to work with smaller sets of data from a larger set. Typically with large data sets, you pay a penalty for having all of it in memory at once. For small sets of data, the overhead is less to have it all in memory.
For an app’s settings, JSON/Flat files are the way to go. Building a complex game where you need to create, read, update and delete records of data, then a Database makes more sense.
Rob