There are two ways to use SIMD.
1) You code explicitly for SIMD. For example:
http://www.cs.columbia.edu/~kar/pubsk/simd.pdf
This tends to get the best possible performance at the expense of portability. For example, you may have different versions of the same function for x86, POWER and ARM. You may event have different versions for different levels of the same ISA, like MMX, SSE and AVX on the x86. There are libraries to abstract away common SIMD primitives on different processors like load/store and basic arithmetics to avoid multiple versions but you give up some platforms specific primitives that may give up substantial performance advantage.
2) You code in generic C/C++ and let a compiler to extract parallelism in your code and convert some operations into SIMD. Most compilers today know how to do that. If you write your database engine in C/C++ and compile that with gcc or clang then you are very likely to find some SIMD usage in the compiled executable.