SQLite back end calls throwException with error message and then again calls lastError, which only duplicates the error message. - [x] if error message is provided, then lastError should not be called.