No idea what version, or what FTS is. I haven't found any limitations yet that I could blame on version, though SQLite has limitations compared to SQL.
Doing a SELECT on a 50000 line table is quite fast. I'm guessing faster than the Lua/C++/SQLite context changes you need to push the command through to SQLite and get the result back.
No, don't store text. 50000 lines is not a big deal if each one is only 100 bytes, which should be possible using integers. And keep in mind that DB tables don't "grow" when you add columns, only when you add non-default values. (Actually, I'm not sure if there is some minimum size per row so I don't know if my 100 byte per row is realistic. But I have done this and haven't noticed an obvious effect on gamesave/load speed.)
Is it possible to actually write to an SQLite table from in-game. I though even reading them wasn't possible after a game was started (and only Lua tables were available then).
You can create tables, add columns, deleate columns, insert, update, anything you want. That's how my
TableSaverLoader works. [Edit: but don't use my TableSaverLoader for this. Bad idea. Just set up your own Query commands to create a specific table for this in SaveGameDB and insert/read as needed.]
Edit: If you tell me what columns you need and how you would likely want to get info from it, I'd be happy to write and post the Lua/SQL part for you.