^^ +1 AndrewHaigh
BJG, based on your description, I would say you are not violating the principles of SV. Rather, I submit that you are implementing the concept of a stateful virtual service without using the OOTB stateful model pattern provided by the VSE.
The reality is that our stateful pattern does not always meet the requirements necessary to manage state when dealing with a real customer system-under-test. For example, implementing services that must respond to the concept of transactions within transactions with no single identifier to tie the txns together. When this occurs, many of us use Shared or Persistent Model Maps, others find interesting ways to delegate behavior across several virtual services, and in your case, you chose to persist and retrieve data (which, by the way, is essentially the same as using our Persistent model map feature).
The only caution I would offer is that by adding your own custom tables into the DevTest DB schema, you have to pay closer attention to product version upgrades, manage the DDL, potentially clean up the table accordingly, and so on.
Check out the scripting guide @ DevTest 8.0 - Scripting Guide - V1.1.pdf and refer to pages 23 - 26. There is discussion of the Persistent Model Map API. If you have no requirement to manually manipulate or maintain the data in the tables, a Persistent Model Map implementation may provide you a path to alleviate product migration issues.