Did you look in the LConvEncoding unit? Apart from functions for converting particular character sets, in that unit you can also find the function named GuessEncoding. I haven't tried this function, maybe it can help you determine whether the string you got from database is UTF16 or not, and if not, which encoding it is.
I don't know... I hope that someone better experienced in this than me will have to say something to help you.