What platform are you encountering this on? I have yet to see this behaviour, though Signal Desktop will throw away all its data if the checksum on the database fails (eg: dying SSD/hard drive).
Take a peek at my other comment perhaps, signal-weechat & pyre.chat might be of use