Using the Webform Module
The Webform module has an options structure that can be used for storing any list of items, and comes with many (30+) pre-built. These options use the WebformOptionsInterface. You can view all options available by visiting the following path on your site.
/admin/structure/webform/config/options/manage.
To use one of these option sets you simply need to load the webform_options entity type storage, and then load the option set you want. It's the same way you go about loading a node, vocabulary, etc, so it's likely familiar territory.
$webform_options_storage = $this->entityTypeManager->getStorage('webform_options');
$states = $webform_options_storage->load('state_codes');
$state_options = $states->getOptions();
The nice thing about this is that all option sets are configurable and can be exported with configuration, so deployment is a breeze. For example, the state_codes include U.S. territories like Guam and D.C. In my case I only wanted the 50 official states so I was able to remove the handful of extra options to accomplish this.
I should also note that there are a few state lists available in Webform. One is called state_names and provides key/values that are both the full name of the region. state_codes on the other hand, provides the state two character code as the key, and the full name as the value.