FWIW I use atuin (https://atuin.sh/) and am reasonably happy with it, especially the infinite capacity & snapiness. Ignoring the sync features, I believe it's also sqlite backed when running in local-only mode.
AFAIK it is always backed by a sqlite DB. That way the sync just populates the DB and the completion process doesn't care (or wait for) the central source.
So can it run without AI? They promote their own AI on the website and that is really the last thing I want in my Shell
The readme starts by saying how the author used to use atuin, and why they wrote stinkpot as a less featureful alternative.