Here is a module which I wrote which may help someone who needs to change format of many body fields at once. It's not general and useful enough that I think I want to create and support a module, but if someone really needs this, here is the code.

change_formats.info:

name        = Change Formats
description = Change the data formats from one to another, e.g. from "Full HTML" to "HTML" 
core        = 7.x

README.md

INTRODUCTION
------------

This module is an API for changing the format for particular fields. 

For example, to change the format of the body field from "Full HTML" (machine name 'html') to "HTML" (machine name 'simple_html') you would call:
 change_formats_change('body', 'html', 'simple_html'); 
or
 $fields = array('body', 'field_assumptions', 'field_agenda');
 change_formats_change_multiple($fields, 'html', 'simple_html');
 
WARNING 
-------
This can be a security risk if you change the filter from a stronger filter to a weaker one. For example, if you change the format from 'simple_html' ("HTML") to 'html' ("Full HTML"). In this instance, if there is dangerous content already in the field, it will now be displayed. 

change_formats.module:


/**
 * @file
 * Provide an API for changing the text format of fields.
 */

// Constants for use when building the field table names
// e.g. 'field_data_body'
// and  'field_revision_body'
define("CHANGE_FORMATS_DATA", 'data');
define("CHANGE_FORMATS_REVISION", 'revision');

/**
 * Change text format for a given database field.
 * 
 * @param $field
 *   Field name, e.g. 'body'
 * @param $from_format
 *   Machine name of format which changing from, e.g. 'html'
 * @param $to_format
 *   Machine name of format which changing to, e.g. 'simple_html'
 */
function change_formats_change($field, $from_format, $to_format) {
  $fields = array($field);

  change_formats_change_multiple($fields, $from_format, $to_format);
}

/**
 * Change text format for multiple database fields.
 * 
 * @param $fields
 *   An array of field names, e.g. array('body', 'field_comments')
 * @param $from_format
 *   Machine name of format which changing from, e.g. 'html'
 * @param $to_format
 *   Machine name of format which changing to, e.g. 'simple_html'
 */
function change_formats_change_multiple($fields, $from_format, $to_format) {
  foreach ($fields as $field) {
    _change_formats_change_single_table(CHANGE_FORMATS_DATA, $field, 
      $from_format, $to_format);
  }
  
  // This could be done in the loop above, but the user messages look better
  // when all the 'revision' and 'data' fields are done as a group.
  foreach ($fields as $field) {
    _change_formats_change_single_table(CHANGE_FORMATS_REVISION, $field, 
      $from_format, $to_format);
  }
    
  field_cache_clear();
}

/**
 * Change text format for a given table type.
 * 
 * You should not be calling this function directly, but rather you should
 * call the change_formats_change() or change_formats_change_multiple().
 * 
 * @param $table_type
 *   Table type is either 'data' or 'revision'. Used to make table name of 
 *   'field_data_body' or 'field_revision_body'.  
 * @param $field
 *   Field name, e.g. 'body'
 * @param $from_format
 *   Machine name of format which changing from, e.g. 'html'
 * @param $to_format
 *   Machine name of format which changing to, e.g. 'simple_html'
 */
function _change_formats_change_single_table($table_type, $field, $from_format, $to_format) {
  // e.g. 'field_data_body' or 'field_revision_body'
  $table = 'field_' . $table_type . '_' . $field;
  $rows_updated = db_update($table) 
    ->fields(array(
      $field . '_format' => $to_format,
    ))
    ->condition($field . '_format', $from_format)
    ->execute();
    
  drupal_set_message($rows_updated . " nodes in table '" . $table . 
    "' have had their format changed from '" . $from_format . "' to '" . $to_format . "'.");  
}