Access violation/segmentation fault is possible in the following scenario:
1. T1: open connection
2. T1: start any method that use sqlite3* handle
3. T1: method checks handle/state for validity, releases lock
4. T2: dispose is called, handle is now invalid
5. T1: method uses now-invalid handle - crash