I could not agree more with what R.I. Pienaar wrote.
Even if you use SQL backing store, do not manually remove messages,
or if you do, don't be surprise if the system stops working.
As R.I. mentioned, there isn't ack'ed messages. This is not a message queue
as in JMS sense. Messages are in a log for the duration of the channel limits.
Even then, note that depending on the store implementation, messages may
still be present (in the file store for instance) even if they are not going to be
delivered. The FileStore implementation for instance split the message log
in a number of files (slices) and only when all messages in a slice have been
logically removed that the slice itself can be removed. So that would not
satisfy the GDPR requirements.
Ivan.