Melt butter in a small skillet and sauté the green onions for 1-2 minutes until softened, then set aside to cool.
Grease a 9x9-inch baking dish and spread the diced ham evenly on the bottom.
In a large bowl, whisk together eggs, cottage cheese, Swiss cheese, flour, baking powder, and salt until smooth.
Stir the sautéed green onions into the egg mixture.
Pour the egg mixture over the ham in the baking dish.
Cover tightly with aluminum foil and refrigerate overnight or for at least 8 hours.
Preheat oven to 350°F and bake covered for 30 minutes, then uncover and bake an additional 10 minutes until golden and set in the center.
Let stand 5 minutes before cutting and serving.