On a single database connection, when a query begins, it starts a read transaction. Other queries that come along before the first query ended piggy-back onto the original read transaction. This continues, holding the transaction open, until all queries are complete. While a read-transaction is active, SQLite sees a single consistent snapshot of the data. Changes added by other database connections after the read transaction started are invisible to the read transaction. This is a feature, not a bug. If you want to see all the latest changes entered by other database connections, you have to end your read transaction and start a new one.